Python小技巧 |
您所在的位置:网站首页 › python 接收参数 › Python小技巧 |
对于我们自己写的Python脚本,往往将参数写死在脚本中,然后通过IDE或者python命令一键运行。 对于一些临时型的应用场景,这样做既方便又快捷;但是,当我们面临一些需要频繁变更参数的复杂应用场景时,这样的脚本就会显得非常笨拙。 为了让我们的脚本能够适应多变的环境,我们需要编写一小段代码来让我们的脚本能够读取来自外部的参数。 方法一、sys.argv[]该方法较为简单,只需两行代码就可以使用,适合于简单场景。 import sys # 导入模块 text = sys.argv[1] # 获得外部参数 print(text) # 打印其中argv是一个列表,接收了所有的外部参数。 索引0指向脚本名,索引1及之后的索引依次指向后面的参数(默认为字符串类型)。 方法二、argparse 极简版该模块是Python标准库中推荐的命令行解析模块。如果你想让你的程序变得更加实用且优雅,不妨就试试它。 新建一个test.py文件,导入模块并新建一个ArgumentParser对象: import argparse parser = argparse.ArgumentParser()调用这个对象的add_argument()方法来添加参数: parser.add_argument("text")通过这个对象来解析参数,将解析的结果返回给一个变量,然后使用: args = parser.parse_args() print(args.text)这样就实现了一个最简单的外部传参过程,可以通过下面这行命令来查看结果: python test.py hello 基础版如果只是这样,就和第一种方法没什么区别。为了展现argparse的威力,需要考虑一种更为复杂的场景:比如,脚本提供多个参数,并且任何人都能很容易的理解每个参数的传入位置以及传参方式。 首先,我们可以通过一些参数来扩充ArgumentParser对象,比如description: import argparse parser = argparse.ArgumentParser(description="程序描述") # 注意:这里的文本需要进行额外配置才能支持换行符这样,当我们执行python test.py -h时,就会显示出更为丰富的结果。 如果我们希望参数是一些可选项,并且有一些默认值的话,我们可以这样设置: parser.add_argument('-f', '--foo', default='fff')这样一来,就可以通过python test.py -f f1或者python test.py --foo f1进行传参,如果没有传参,则使用默认值fff。 此时,在脚本中,可以通过下面的代码获取参数: args = parser.parse_args() print(args.foo)需要注意的是,如果长选项字符串(如,--foo)和短选项字符串同时存在(如,-f),则默认通过长选项字符串(foo)来访问参数;如果只有短选项字符串,则可以通过短选项字符串(f)来访问参数。 此外,还可以通过参数metavar和help来使帮助内容变得更加丰富,比如: parser.add_argument('-t', '--text', default='some message', metavar='message', help='give some message to show')这样在使用python test.py -h命令之后,就会显示: optional arguments: -h, --help show this help message and exit -t , --text give some message to show 参考链接[1] https://docs.python.org/zh-cn/3/library/argparse.html?highlight=argparse#module-argparse [2] https://blog.csdn.net/weixin_41654912/article/details/81110702 [3] https://blog.csdn.net/CHCH998/article/details/107176779/ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |